# -*- coding: utf-8 -*-

'''
下载指定url中的图片
流程：
1. 将指定的url下载到本地，保存为html文件（没有做）
2. 解析其中的图片地址，存放到列表当中
3. 下载图片到本地


date: mar/4/2014
auther: leochin
version: 0.1

update: mar/5/2014
version: 0.2 
	添加目录的检测和创建

update: mar/7/2014
version: 0.21
    使用循环的方式读取网络文件内容
	
待解决：
    1. 该代码中的读写不合理
    2. 下载的功能可以单独通过函数实现
    3. 在有代理的局域网中下载的图片变花了
'''

import urllib
import re
import os

#待下载的照片
url = "http://qing.blog.sina.com.cn/tag/%E6%8F%92%E7%94%BB"

#判断文件夹是否存在
dirName = "./test/"
#if os.path.exists(dirName) == False:
#	os.mkdir(dirName)

if not os.path.exists(dirName):
    os.mkdir(dirName)

#连接url
furl = urllib.urlopen(url)
text = ''

while True:
    content = furl.readline()
    if not content:
        break        
    text += content
    
#通过正则表达式匹配下载字符串
img = re.compile(r"""<img\s.*?\s?src\s*=\s*['|"]?([^\s'"]+).*?>""",re.I)
m = img.findall(text)

index = 0
for imgurl in m:
    
    print 'Download ' + imgurl
    fdimgUrl = urllib.urlopen(imgurl)
    imgContent = fdimgUrl.read()
    
    local = dirName + str(index)+".jpg"
    fd = open(local,'w')
    fd.write(imgContent)
    fd.close()
    index = index + 1

print 'DONE'

